package com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsRegistrationProcessDetail;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.*;

import java.util.concurrent.Future;

/**
 * <p>
 * 报到流程步骤表 服务类
 * </p>
 *
 * @author XYHT
 * @since 2024-01-08
 */
public interface SmsWnsRegistrationProcessDetailService extends IService<SmsWnsRegistrationProcessDetail> {

    ResponseResult stuEnrollmentStatus(String userId);

    ResponseResult listStuNumByGrade(Integer pageNum, Integer pageSize, String collegeId, String majorId, String grade);

    Future<ResponseResult> batchAddStuInfo(SmsWnsNewStuBatchAddReq newStuBatchAddReq, String userId);

    ResponseResult getPersonalInfoStatus(String userId);

    ResponseResult listStuInfoByMajor(Integer pageNum, Integer pageSize, String gradeId, Integer classId);

    ResponseResult listClassByGrade(String grade, String majorId);

    ResponseResult classifyStu(ClassifyStuReq classifyStuReq);

    ResponseResult changeClass(ChangeClassReq changeClassReq);

    ResponseResult delNewStu(SmsWnsIdListReq idListReq);

    ResponseResult listAllMajorByGrade(String grade);

    ResponseResult listAllClassByGrade(String grade);

    ResponseResult listNewStuInfo(Integer pageNum, Integer pageSize, String searchStr);

    ResponseResult newStuInfoDetail(String userId);

    ResponseResult uploadSitePic(SmsWnsStudentCardInformationReq cardInformationReq);

    ResponseResult newStuInfoDetailByIdCard(String idCard);

    ResponseResult approveNewStuInfo(SmsWnsStudentCardInformationReq cardInformationReq);

    Future<ResponseResult> batchAddChsiPic(SmsWnsChsiPicBatchAddReq req, String userId);

    ResponseResult reportSuccess(SmsWnsRegistrationProcessReq req);

    ResponseResult updDetailStatus(SmsWnsRegistrationProcessDetailReq req);

    ResponseResult stuInfoList(Integer pageNum, Integer pageSize, Integer orgId, String stuStatus, Integer sort, Integer status, String searchStr);

    ResponseResult stuInfoDetail(String stuId, Integer sort);

    ResponseResult stuOrgUpdateHistoryList(Integer pageNum, Integer pageSize, String searchStr);

    ResponseResult stuOrgUpdateHistoryListByUserId(Integer pageNum, Integer pageSize, String userId);
}
